package com.shujia.wyh;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

/*
    回顾一下，使用java操作数据库的6步
    1、注册驱动 我们上午学习的注册驱动是第一种方式借助于DriverManager类
    2、建立连接
    3、获取操作数据库的对象
    4、执行sql
    5、如果第四步是查询操作，分析查询的结果集
    6、释放资源，关闭连接
 */
public class JDBCDemo2 {
    public static void main(String[] args) throws Exception {
        /**
         *  上午呢，我们说到驱动包的时候，原本是java自己提供的一系列接口，然后不同的数据库厂商去实现这些接口
         *  最终提供了一个驱动包给到开发者，然后开发者拿到这个驱动包使用里面的类连接或操作数据库
         *
         *  上午的注册驱动方式，是直接实例化mysql驱动包中的Driver类，但是我们今后使用java不一定只是连接mysql，还有可能操作redis等其他的数据库
         *  实际上我们最终是根据驱动包中的实现类路径来找到这个实现类的
         *  能否使用传路径的方式，注册驱动呢？
         *
         *  第二种注册驱动的方式：驱动包中的类都是class文件，我们如果能够直接定位到实现类也可以
         *  使用反射的方式，定位到实现类，将实现类加载到内存
         *  Class.forName("com.mysql.jdbc.Driver")
         */
        Class.forName("com.mysql.jdbc.Driver");


        //2.获取连接（表示JVM的进程和数据库进程之间的通道打开了，这属于进程之间的通信，使用完后记得关闭通道）。
        //mysql5.7之后，不建议用户直接与mysql服务连接，中间会有一个SSL令牌校验
        String url = "jdbc:mysql://192.168.254.100:3306/bigdata25?useUnicode=True&characterEncoding=utf8&useSSL=false";
        String user = "root";
        String password = "123456";
        Connection conn = DriverManager.getConnection(url, user, password);


        System.out.println("=============数据库连接成功："+conn);



        //3.获取数据库操作对象（专门执行sql语句的对象）
        Statement statement = conn.createStatement();

        //4.执行SQL语句（DQL,DML…）
        //修改
        String sql3 = "update student set sage=20 where sno='110'";
        int i = statement.executeUpdate(sql3);
        if(i==1){
            System.out.println("数据修改成功！。。。");
        }else {
            System.out.println("数据修改失败！！");
        }

        //6.释放资源（使用完资源后一定要关闭资源，Java和数据库之间属于进程间的通信，开启之后一定要记得关闭）
        conn.close();
    }
}
